Personal mobility is a hallmark of modern communications. For example, associations may be provided between networked devices and other types of collaborative systems, such as IP phones, thin clients, PCs/laptops using “hot desking” and wireless access to provide user selected dynamically associated features and preferences via a physical piece of hardware (i.e. device) that connects the user to the network.
It is important that users be able to maintain connectivity as they move through different environments during the course of day-to-day activities. The ability to create associations between a user and a device by means of hot desking, IP telephone registration, local wireless and cellular service registration etc. is well known. However the expected behavior of an existing call, or other collaborative session, in circumstances where an association is terminated, remains undefined. For example, in the case of hot desking, if an association between device and user is ended but a call involving that device and user is still active, conventional IP systems will maintain the current call on the same device thereby coupling the association of the call with the device, whereas it is possible that the user may want the call to proceed on another device if the association is terminated.
As but one example, a user may be involved in a call on a device in one location (e.g. a meeting room) and during the course of the call may wish to move to another location (e.g. office desk) to be able to access other information or personnel. It is not presently possible for the user to end his/her association with the device, move to another device and register on the new device while maintaining his/her current call throughout the transition. The foregoing is an example of a user-initiated, controlled transition of association.
However, there are also cases in which a transition or loss of association is uncontrolled. For example, in IP telephony it is possible for a device in the underlying access network linking a device to the backbone network to cause the association to fail. Also, loss of association may occur between WiFi and DECT devices connected to an in-building wireless system as a result of the user entering a wireless dead zone or moving out of range of a wireless antenna.
It would be desirable in such situations for a user to indicate his/her preferences on how such losses of association are to be dealt with (i.e. as an alternative to dropping the call). Moreover, it would be desirable to provide a mechanism by which a user may indicate preferences on how call association should be maintained for both controlled and uncontrolled transitions of association, and a mechanism to implement these preferences.
It is common in IP telephony systems to provide user proxies for applying user-selected features and preferences to incoming calls. Proxies function to direct incoming calls to an endpoint that is most in compliance with declared user preferences. For purposes of mobility, users are able to register a number of endpoints at which they can be reached. Existing technologies, such as CPL (Call Processing Language), permit a user to specify preferences for the handling of incoming calls. CPL is a network protocol agnostic (described in RFC3880), commonly used in conjunction with SIP (Session Initiation protocol), and uses an XML mark up language that allows a user to specify the handling of incoming and outgoing calls. The user can specify conditions on classes of offered calls (as indicated by SIP address, time of day, etc) and CPL uses these classes to direct the calls to certain endpoints. It is also known to couple CPL to a policy system for allowing user-control in a more straightforward manner through the use of structured English sentences.
Table 1 is reproduced from the CPL RFC (RFC 3880, FIG. 2), as follows:
TABLE 1<?xml version=“1.0” encoding=“UTF-8”?> <cpl xmlns=“urn:ietf:params:xml:ns:cpl”  xmlns:xsi=“http://www.w3.org/2001/XMLschema-instance”  xsi:schemaLocation=“urn:ietf:params:xml:ns:cpl cpl.xsd ”>  <subaction id=“voicemail”>   <location url=“sip:jones@voicemail.example.com”>    <redirect />   </location>  </subaction>  <incoming>   <address-switch field=“origin” subfield=“host”>    <address subdomain-of=“example.com”>     <location url=“sip:jones@example.com”>      <proxy timeout=“10”>       <busy> <sub ref=“voicemail” /> </busy>       <noanswer> <sub ref=“voicemail” /> </noanswer>       <failure> <sub ref=“voicemail” /> </failure>      </proxy>     </location    </address>    <otherwise>     <sub ref=“voicemail” />    </otherwise>   </address-switch>  </incoming></cpl
The CPL script of Table 1 uses an address switch to determine if an incoming caller is from the “example.com” domain. If so, the call is proxied to the endpoint identified by the SIP address jones@example.com. If that call fails, or goes to busy or times out after 10 seconds, the call is directed to the user's voicemail. For all other callers (i.e. those not from example.com), the CPL script provides no specification for call disposition and so the default behavior of the proxy is followed.
There is no provision in the SIP specifications (RFC3251) or CPL that addresses the situation where the device on which a call is being conducted loses its registration. However, as indicated above, in the very similar case of a conventional PBX hot desking feature, if the hot desk registration is withdrawn during the time that a call is active, it is common to maintain the call on the current device until a disconnect signal is received. This default call handling assumes that the user will remain at the device and will wish to continue the call on the device. However, as discussed above, this assumption is not valid in many cases of controlled or uncontrolled loss of association such that default call handling may not adequately serve the user in such situations.